#include "ros/ros.h"
#include "srv/primeHandler.h"

int main(int argc, char *argv[]) {
    setlocale(LC_ALL, "");
    ros::init(argc, argv, "subscriber");
    ros::NodeHandle nodeHandle;
    ros::ServiceClient subscriber = nodeHandle.serviceClient<srv::primeHandler>("srv_info");
    // 创建订阅者
    ros::service::waitForService("srv_info");
    // 如果节点没有启动，阻塞进程并等待
    srv::primeHandler primeHandler;
    // argv 0文件路径 1传入的参数 2节点名称 3日志路径
    // argc 是参数的数量，可以相应检测之来判断相应的调用合法性
    primeHandler.request.target = atoi(argv[1]);
    // 发送请求,返回是否成功
    bool flag = subscriber.call(primeHandler);
    // 处理响应
    ROS_INFO("%s", flag ? "Success!" : "Failed!");
    ROS_INFO("%d isPrime = %d", primeHandler.request.target, primeHandler.response.isPrime);
    return 0;
}
